package com.atguigu.day17.date;

import org.junit.Test;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;

/*
日期格式化类:
   日期-->字符串:
       1.预定义格式化
       2.本地格式化
       3.自定义格式化

   字符串-->日期:
        日期类型.parse()

 */
public class DateTimeFormatterTest {

    @Test
    public void test05(){
        String s = "2024-11-19T16:58:15.923024100";

        LocalDateTime localDateTime = LocalDateTime.parse(s);
        System.out.println("localDateTime = " + localDateTime);
    }

    @Test
    public void test04(){
     //todo 字符串-->日期:
        //1.准备字符串
        String s = "2024-11-20 09:39:40";
        //2.准备格式化对象
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        //3.直接进行解析
        LocalDateTime localDateTime = LocalDateTime.parse(s,formatter);

        System.out.println("localDateTime = " + localDateTime);
    }


    @Test
    public void test03(){
     //todo 自定义格式化
        //1.创建日期对象
        LocalDateTime now = LocalDateTime.now();
        //2.创建日期格式化对象
     //   DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");//2024-11-20 09:39:40
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd E HH:mm:ss");// 2024-11-20 周三 09:39:52
        //3.进行格式化
        String format = formatter.format(now);
        //4.展示结果
        System.out.println("format = " + format);

    }


    @Test
    public void test02(){
     //todo 本地格式化

        //1.创建日期对象
        LocalDateTime now = LocalDateTime.now();
        //2.创建日期格式化对象
       // DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);//2024/11/20 上午9:36
       // DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM);//2024年11月20日 上午9:36:26
      //  DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG).withZone(ZoneId.systemDefault());// 2024年11月20日 CST 上午9:37:32
        DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL).withZone(ZoneId.systemDefault());// 2024年11月20日星期三 中国标准时间 上午9:37:54
        //3.进行格式化
        String format = formatter.format(now);
        //4.展示结果
        System.out.println("format = " + format);
    }


    @Test
    public void test01(){
        //todo   1.预定义格式化
        //1.创建日期对象
        LocalDateTime now = LocalDateTime.now();
        //2.创建日期格式化对象
        //DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE;// 2024-11-20
        DateTimeFormatter formatter = DateTimeFormatter.ISO_TIME;//  09:34:05.2708454
        //3.进行格式化操作
        String format = formatter.format(now);
        //4.输出结果
        System.out.println("format = " + format);

    }
}
